import request from '@/config/HttpConfig'
/**
 * 通用get请求,参数拼接在路径上
 * @param {*} url 资源地址 例：/user/getUserInfo
 * @param {*} params 参数对象 例：{'name':'name','age':'18'}
 * @returns
 */
const getRequest1 = (url, params) => {
    return request({
        method: 'GET',
        url: url,
        params: params
    }).then(res => res.data)
}

/**
 * 登录请求
 * @param {*} url 资源地址
 * @param {*} params 参数对象
 * @returns
 */
const loginRequest = (url, params) => {
    return request({
        method: 'POST',
        url: url,
        headers: {
            // 'Content-Type': 'application/x-www-form-urlencoded',
        },
        data: params
    }).then(res => res.data)
}

/**
 * 通用get请求,参数放在请求域
 * @param {*} url 资源地址 例：/user/getUserInfo
 * @param {*} params 参数对象 例：{'name':'name','age':'18'}
 * @returns
 */
const getRequest2 = (url, params) => {
    return request({
        method: 'GET',
        url: url,
        data: params
    }).then(res => res.data)
}

/**
 * 通用post请求,参数拼接在路径上
 * @param {*} url 资源地址 例：/user/getUserInfo
 * @param {*} params 参数对象 例：{'name':'name','age':'18'}
 * @returns
 */
const postRequest1 = (url, params) => {
    return request({
        method: 'POST',
        url: url,
        params: params
    }).then(res => res.data)
}

/**
 * 通用post请求,参数放在请求域
 * @param {*} url 资源地址 例：/user/getUserInfo
 * @param {*} params 参数对象 例：{'name':'name','age':'18'}
 * @returns
 */
const postRequest2 = (url, params) => {
    return request({
        method: 'POST',
        url: url,
        data: params
    }).then(res => res.data)
}

/**
 * 通用post 上传文件请求,参数放在请求域 'Content-Type':'multipart/form-data'
 * @param {*} url 资源地址
 * @param {*} params 参数对象
 * @returns
 */
const postRequest3 = (url, params) => {
    return request({
        method: 'POST',
        url: url,
        headers: {
            'Content-Type': 'multipart/form-data',
        },
        data: params
    }).then(res => res.data)
}

/**
 * 下载文件 用于excel导出
 * @param url
 * @param parameter
 * @returns {*}
 */
export function downFile1(url, params) {
    return request({
        headers: {
            "Content-Type": "application/json; charset=UTF-8"
        },
        url: url,
        params: params,
        method: 'GET',
        responseType: 'blob'
    })
}

/**
 * 下载文件 用于excel导出
 * @param url
 * @param parameter
 * @returns {*}
 */
export function downFile2(url, params) {
    return request({
        url: url,
        data: params,
        method: 'POST',
        responseType: 'blob'
    })
}


/**
 * 通用get请求,参数拼接在路径上
 * @param {*} url 资源地址 例：/user/getUserInfo
 * @param {*} params 参数对象 例：{'name':'name','age':'18'}
 * @returns
 */
 export function get1(url, params) {
    return request({
        method: 'GET',
        url: url,
        params: params
    }).then(res => res.data)
}

/**
 * 登录请求
 * @param {*} url 资源地址
 * @param {*} params 参数对象
 * @returns
 */
export function login(url, params) {
    return request({
        method: 'POST',
        url: url,
        headers: {
            // 'Content-Type': 'application/x-www-form-urlencoded',
        },
        data: params
    }).then(res => res.data)
}

/**
 * 通用get请求,参数放在请求域
 * @param {*} url 资源地址 例：/user/getUserInfo
 * @param {*} params 参数对象 例：{'name':'name','age':'18'}
 * @returns
 */
export function get2(url, params) {
    return request({
        method: 'GET',
        url: url,
        data: params
    }).then(res => res.data)
}

/**
 * 通用post请求,参数拼接在路径上
 * @param {*} url 资源地址 例：/user/getUserInfo
 * @param {*} params 参数对象 例：{'name':'name','age':'18'}
 * @returns
 */
export function post1(url, params) {
    return request({
        method: 'POST',
        url: url,
        params: params
    }).then(res => res.data)
}

/**
 * 通用post请求,参数放在请求域
 * @param {*} url 资源地址 例：/user/getUserInfo
 * @param {*} params 参数对象 例：{'name':'name','age':'18'}
 * @returns
 */
export function post2(url, params) {
    return request({
        method: 'POST',
        url: url,
        data: params
    }).then(res => res.data)
}

/**
 * 通用post 上传文件请求,参数放在请求域 'Content-Type':'multipart/form-data'
 * @param {*} url 资源地址
 * @param {*} params 参数对象
 * @returns
 */
export function post3(url, params) {
    return request({
        method: 'POST',
        url: url,
        headers: {
            'Content-Type': 'multipart/form-data',
        },
        data: params
    }).then(res => res.data)
}

export {
    postRequest1,
    postRequest2,
    postRequest3,
    getRequest1,
    getRequest2,
    loginRequest
}
